3D灰度模型显示 Sample详情

最后更新时间:2019年6月17日

3D灰度模型显示方法

移动端的二维地图视图中,支持3D灰度模型加载,即通过MapGIS桌面软件设置二维矢量区图层的自绘模式属性,然后转换为矢量离线数据包加载即可。

采用基于二维区图层的方式组织3D灰度模型数据的大体步骤如下,详细操作步骤参考数据组织配置 > 数据预处理模块。

(1)准备3D楼块源数据。在MapGIS 10桌面工具(MapWorkSpace)中制作二维区图层(building),在当前二维区图层中右键属性-->显示-->自绘参数设置;

(2)组织地图文档。将二维区图层和其他需要的二维图层一起组织成地图文档(如本示例组织地图文档为buildings.mapx);

(3)数据转换。将上一步生成的地图文档(如buildings.mapx)使用桌面工具中的移动数据转换工具进行转换,转换完成后会在指定存放路径下生成一个文件夹,文件夹包含转换后的离线数据库文件与地图文档(如buildings.db、buildings.mapx),把转换后的数据放到移动设备存储卡的相应数据目录中;

(4)地图加载。在程序代码中编写加载地图文档的方法,接口调用非常简单,与离线矢量地图的加载方式相同,代码如下:

//获取地图容器
mapView = (MapView) findViewById(R.id.mapView);
//加载地图
mapView.loadFromFileAsync(Environment.getExternalStorageDirectory().getPath() + "/MapGIS Mobile 2D Sample/Map/MapShow/Buildings/buildings.mapx");
//为mapview设置地图加载监听
mapView.setMapLoadListener(new MapView.MapViewMapLoadListener() {
    //开始加载地图
    @Override
    public void mapViewWillStartLoadingMap(MapView arg0, String arg1) {
    }

    //地图加载完成
    @Override
    public void mapViewDidFinishLoadingMap(MapView arg0, String arg1) {
        //给定地图位置
        MapPosition position = new MapPosition(new Dot(12734840.911782857, 3568731.256785354), 0.462913295, new Dot(12734947.334961485, 3568606.054069660), (float) -19.78676, (float) 58.281357);
        //地图动画
        mapView.animatePosition(position, 2500, null);
    }

    //地图加载失败
    @Override
    public void mapViewDidFailLoadingMap(MapView arg0, String arg1) {
    }
});

显示效果如下所示:

04013D灰度模型显示效果.jpg